<?php
namespace Admin\Controller;//命名空间 防止重名
use Think\Controller;//自动加载核心控制器类
class GoodsController extends AdminController {
    public function index(){
        $Goods = M('Goods'); // 实例化User对象
        $num = 10;
        // 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
        $data = D('GoodsView')
                ->field('id,title,img,market_price,shop_price,num,c_time,u_time,name')
                ->order('u_time desc,id desc')
                ->page(I('get.p',1).','.$num)
                ->select();
        $count = $Goods->count();// 查询满足要求的总记录数
        $show = cjl_page($count,$num);
        $this->assign('page',$show);// 赋值分页输出
        // var_dump($data);exit;
        // var_dump($show);

       // $data = M('Goods')->field('id,username,l_time,c_time,u_time')->order('u_time desc,id desc')->select();
       // var_dump($data);
       $this->assign('data',$data);
       $this->assign('cjl_title','商品列表');
       $this->display();
    }


    //用户删除
    public function delete($id=0){    //$id=0  可以拿到ID值
        //回收站功能 status 删除 把status 0 
        // var_dump($id);
        if(!$id){
            $this->error('参数非法',U('index'));exit;
        }

        $res = M('Goods')->delete($id);
        if($res !== false){  //判断$res不为false，就可以判断是否删除成功。但是判断条件一定要是不全等于，因为如果条件是等于，那么0也是false了，只有当不全等于是，0就不是false了，而是表示数值0.
            M('GoodsInfo')->delete($id);
            $this->success('删除成功',U('index'));exit;
        }else{
            $this->error('删除失败，请稍后再试~',U('index'));exit;
        }
    }

    //用户添加
    public function add(){
        if(IS_POST){
            // var_dump(I());
            $data = I('post.');
            $data['more_img'] = implode(',', $data['more_img']);
            $data['content'] = I('post.content','','trim');
            // var_dump($data);exit;
            $Goods = D('Goods');
            $Goods->cjl_data = $data;
            $res = $Goods->cjl_add();
            if($res){
                $this->success('添加成功',U('index'));exit;
            }else{
                $this->error('添加失败-'.$Goods->getError(),U('index'));exit;            
            }
        }else{
            $data = M('Category')->where('pid = 2')->order('sort,u_time desc,id desc')->select(); 
            $Attr = M('Attr'); // 实例化User对象
            $attr = $Attr
                    ->order('u_time desc,id desc')
                    ->select();
            $this->assign('attr',$attr);
            // var_dump($attr);exit;     
            // $data = get_category($data);
            // 
            $this->assign('cjl_width','192');
            $this->assign('cjl_height','127');

            $this->assign('cjl_width_more','434');
            $this->assign('cjl_height_more','288');
            $this->assign('data',$data);
            $this->assign('cjl_title','商品添加');
            $this->display();
        }
    }

    // 用户修改    
    public function edit($id=0){
        if(!$id){
            $this->error('参数非法',U('index'));exit;
        }
        if(IS_POST){
            $data = I('post.');
            $data['more_img'] = implode(',', $data['more_img']);
            $data['content'] = I('post.content','','trim');
            $Goods = D('Goods');
            $Goods->cjl_data = $data;
            $res = $Goods->cjl_save();
            // var_dump($data);exit;
            if($res !== false){
                $this->success('修改成功',U('index'));exit;
            }else{
                $this->error('修改失败！'.$Goods->getError(),U('index'));exit;            
            }
        }else{
            
            $one = D('GoodsView')->field('id,title,category_id,img,market_price,shop_price,num,resolution,size,cell,c_time,u_time,more_img,content')->find($id);

            $this->assign('one',$one);
            $this->assign('action','edit');
            $data = M('Category')->where('pid = 2')->order('sort,u_time desc,id desc')->select(); 
            $Products = M('Products')->where('goods_id = '.$id)->order('id')->select();
            $this->assign('Products',$Products);
            $attr = M('Attr')
                    ->order('u_time desc,id desc')
                    ->select();
            $this->assign('attr',$attr);     
            // $data = get_category($data);
            $this->assign('cjl_width','192');
            $this->assign('cjl_height','127');

            $this->assign('cjl_width_more','434');
            $this->assign('cjl_height_more','288');
            $this->assign('data',$data);            
            $this->assign('cjl_title','商品修改');
            $this->display();
        }

    }

    //属性列表
    public function attr(){        
        $Attr = M('Attr'); // 实例化User对象
        $num = 10;
        // 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
        $data = $Attr
                    ->order('u_time desc,id desc')
                    ->page(I('get.p',1).','.$num)
                    ->select();
        $count = $Attr->count();// 查询满足要求的总记录数
        $show = cjl_page($count,$num);
        $this->assign('page',$show);// 赋值分页输出
        // var_dump($data);exit;
        // var_dump($show);

       // $data = M('Attr')->field('id,username,l_time,c_time,u_time')->order('u_time desc,id desc')->select();
       // var_dump($data);
       $this->assign('data',$data);
       $this->assign('cjl_title','商品属性管理');
       $this->display();
    }

    //属性删除
    public function attr_del($id=0)
    {
        //回收站功能 status 删除 把status 0 
        // var_dump($id);
        if(!$id){
            $this->error('参数非法',U('attr'));exit;
        }       
        if(is_array($id)){
            $wh['id'] = array('in',implode(',', $id));
            // in (1,2,3)
        }else{
            $wh['id'] = $id;
        }
        $res = M('Attr')->where($wh)->delete();

        // 0 false
        if($res !== false){
            $this->success('删除成功',U('attr'));exit;
        }else{
            $this->error('删除失败，请稍后再试~',U('attr'));exit;            
        }
    }

    //属性添加    
    public function attr_add()
    {
        if(IS_POST){
            // var_dump(I());exit;
            $data = I('post.');
            
            $data['value'] = array();
            // 直接把数据拼装为json字符串 但是有空数组
            if($data['attr_text']){
                foreach ($data['attr'] as $k => $v) {
                    if($v){
                        $data['value'][$v.','.$data['attr_text'][$k]] = [urlencode($v),urlencode($data['attr_text'][$k])];// /u2345
                    }
                }
            }else{
                foreach ($data['attr'] as $k => $v) {
                    if($v){
                        $data['value'][$v] = urlencode($v);// /u2345
                    }
                }
            }
            
            // var_dump($data);

            // $data['value'] = array_unique($data['value']);//去除重复数据
            $data['value'] = urldecode(json_encode(array_values($data['value'])));//转为json  把转义后的中文 重新转为中文
            if(empty($data['name'])){
                $this->error('属性名称不得为空');
            } 
            if(empty($data['value'])){
                $this->error('属性详情不得为空');
            }    
            $data['c_time'] = $data['u_time'] = time();
            // var_dump($data);exit;
            $Attr = M('Attr');
            $res = $Attr->data($data)->add();
            if($res){
                $this->success('添加成功',U('attr'));exit;
            }else{
                $this->error('添加失败',U('attr'));exit;           
            }
        }else{
            $this->assign('data',$data);
            $this->assign('cjl_title','商品属性添加');

            $this->display('attr_edit');
        }
    }

    public function attr_edit($id=0)
    {
        if(IS_POST){
            // var_dump(I());exit;
            $data = I('post.');
            
            $data['value'] = array();
            // 直接把数据拼装为json字符串 但是有空数组
            if($data['attr_text']){
                foreach ($data['attr'] as $k => $v) {
                    if($v){
                        $data['value'][$v.','.$data['attr_text'][$k]] = [urlencode($v),urlencode($data['attr_text'][$k])];// /u2345
                    }
                }
            }else{
                foreach ($data['attr'] as $k => $v) {
                    if($v){
                        $data['value'][$v] = urlencode($v);// /u2345
                    }
                }
            }
            
            // var_dump($data);

            // $data['value'] = array_unique($data['value']);//去除重复数据
            $data['value'] = urldecode(json_encode(array_values($data['value'])));//转为json  把转义后的中文 重新转为中文
            if(empty($data['name'])){
                $this->error('属性名称不得为空');
            } 
            if(empty($data['value'])){
                $this->error('属性详情不得为空');
            }    
            $data['u_time'] = time();
            // var_dump($data);exit;
            $Attr = M('Attr');
            $res = $Attr->data($data)->save();
            if($res){
                $this->success('编辑成功',U('attr'));exit;
            }else{
                $this->error('编辑失败',U('attr'));exit;           
            }
        }else{
            $one = M('Attr')->find($id);
            $this->assign('one',$one);
            // var_dump(M('Attr')->_sql());
            // var_dump($one);exit;
            $this->assign('action','attr_edit');
            $this->assign('cjl_title','商品属性修改');
            $this->display();
        }
    }

    public function del_product($id)
    {
        $res = M('Products')->delete($id);
        if($res !== false){
            echo 1;
        }
    }
   
}